package com.wlxt.springcloud.member.client;

import java.util.Map;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
//book-service 是微服务的serviceid  
//@FeignClient(name="book-service") 指明这是调用Book-Service（图书馆微服务）的客户端
//Feign默认支持Ribbon负载均衡，我们只需要部署多个Book-Service微服务后，客户端便可自动进行负载均衡选择
@FeignClient(name="book-service", fallback = BookServiceClientFallBack.class)  
public interface BookServiceClient {

	//当调用getInfo方法的时候，自动向book-service微服务的/info发起请求
	//当调用时自动会将?bid=xxx附加到url中
	@GetMapping("/info")
	public BookResultDTO getInfo(@RequestParam("bid") String bid);
	
	//Get请求对应GetMapping
	//   Get请求使用RequestParam注解发送参数
	//Post请求对应PostMapping
	//  Post请求使用RequestBody注解发送参数
	@PostMapping("/create")
	public BookResultDTO create(@RequestBody Map rec);
	
}
